/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entities;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author edgar
 */
@Entity
@Table(name = "movimientos_caja_detalle")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "MovimientosCajaDetalle.findAll", query = "SELECT m FROM MovimientosCajaDetalle m"),
    @NamedQuery(name = "MovimientosCajaDetalle.findByNroMovimiento", query = "SELECT m FROM MovimientosCajaDetalle m WHERE m.movimientosCajaDetallePK.nroMovimiento = :nroMovimiento"),
    @NamedQuery(name = "MovimientosCajaDetalle.findByNroLinea", query = "SELECT m FROM MovimientosCajaDetalle m WHERE m.movimientosCajaDetallePK.nroLinea = :nroLinea"),
    @NamedQuery(name = "MovimientosCajaDetalle.findByDocumentoRespaldo", query = "SELECT m FROM MovimientosCajaDetalle m WHERE m.documentoRespaldo = :documentoRespaldo"),
    @NamedQuery(name = "MovimientosCajaDetalle.findByMonto", query = "SELECT m FROM MovimientosCajaDetalle m WHERE m.monto = :monto")})
public class MovimientosCajaDetalle implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected MovimientosCajaDetallePK movimientosCajaDetallePK;
    @Size(max = 100)
    @Column(name = "documento_respaldo")
    private String documentoRespaldo;
    @Column(name = "monto")
    private Integer monto;
    @JoinColumn(name = "cod_tipo_operacion", referencedColumnName = "cod_tipo_operacion")
    @ManyToOne
    private TiposOperaciones codTipoOperacion;
    @JoinColumn(name = "nro_recibo", referencedColumnName = "nro_recibo")
    @ManyToOne
    private PagosCabecera nroRecibo;
    @JoinColumn(name = "nro_caja", referencedColumnName = "nro_caja")
    @ManyToOne(optional = false)
    private Cajas nroCaja;

    public MovimientosCajaDetalle() {
    }

    public MovimientosCajaDetalle(MovimientosCajaDetallePK movimientosCajaDetallePK) {
        this.movimientosCajaDetallePK = movimientosCajaDetallePK;
    }

    public MovimientosCajaDetalle(int nroMovimiento, int nroLinea) {
        this.movimientosCajaDetallePK = new MovimientosCajaDetallePK(nroMovimiento, nroLinea);
    }

    public MovimientosCajaDetallePK getMovimientosCajaDetallePK() {
        return movimientosCajaDetallePK;
    }

    public void setMovimientosCajaDetallePK(MovimientosCajaDetallePK movimientosCajaDetallePK) {
        this.movimientosCajaDetallePK = movimientosCajaDetallePK;
    }

    public String getDocumentoRespaldo() {
        return documentoRespaldo;
    }

    public void setDocumentoRespaldo(String documentoRespaldo) {
        this.documentoRespaldo = documentoRespaldo;
    }

    public Integer getMonto() {
        return monto;
    }

    public void setMonto(Integer monto) {
        this.monto = monto;
    }

    public TiposOperaciones getCodTipoOperacion() {
        return codTipoOperacion;
    }

    public void setCodTipoOperacion(TiposOperaciones codTipoOperacion) {
        this.codTipoOperacion = codTipoOperacion;
    }

    public PagosCabecera getNroRecibo() {
        return nroRecibo;
    }

    public void setNroRecibo(PagosCabecera nroRecibo) {
        this.nroRecibo = nroRecibo;
    }

    public Cajas getNroCaja() {
        return nroCaja;
    }

    public void setNroCaja(Cajas nroCaja) {
        this.nroCaja = nroCaja;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (movimientosCajaDetallePK != null ? movimientosCajaDetallePK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof MovimientosCajaDetalle)) {
            return false;
        }
        MovimientosCajaDetalle other = (MovimientosCajaDetalle) object;
        if ((this.movimientosCajaDetallePK == null && other.movimientosCajaDetallePK != null) || (this.movimientosCajaDetallePK != null && !this.movimientosCajaDetallePK.equals(other.movimientosCajaDetallePK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entities.MovimientosCajaDetalle[ movimientosCajaDetallePK=" + movimientosCajaDetallePK + " ]";
    }
    
}
